<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>04-arguments对象</title>
</head>
<body>
    <script>
        /*
            js 中，尽管有些函数是不带参数的，但是在执行过程中，浏览器会默认添加两个隐形的参数，分别是 this 和 arguments
            arguments 表示函数的参数列表长度（有多少个参数）
            注意：
                1. arguments 对象是一个伪数组，看着很像数组，也具有 length 属性，也可以进行遍历，但是不能使用标准数组方法

            请解释什么是伪数组：
            1. 伪数组是一种看着很像数组，具有length属性，可遍历的内容
            2. 伪数组不能使用 push()、pop()、shift()、unshift() 等标准数组方法
            3. 伪数组中存放的不是真实的数据，而是真实数据的保存地址
        */ 

        // function fn(){
        //     console.log(arguments.length);
        // }   

        // fn();

        // 需求：打印参数列表并求和

        // function fn(n1,n2,n3){
        //     var ele = arguments;
        //     console.log(ele);
        //     /*
        //         参数列表求和：
        //             1. 遍历参数列表
        //             2. 参数中的每一项进行相加
        //     */
        //     // 定义一个变量 sum，将参数列表中参数的和赋值给 sum
        //     var sum = 0;
        //     for(var i=0;i<arguments.length;i++){
        //         sum += arguments[i];
        //     }
        //     console.log('参数列表的和 sum 的值是：' + sum);
        // }

        // fn(1,2,3);
    </script>
</body>
</html>